using System;
using System.Collections.Generic;
using FluorineFx;
using Neturion.Dados;
using Neturion.Fachadas;

namespace Neturion.Servicos
{
    [RemotingService]
    public class ServicoCbo
    {
        public Cbo Inserir(Cbo cbo, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().Inserir(cbo, usuarioPermissao);
        }

        public Cbo Atualizar(Cbo cbo, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().Atualizar(cbo, usuarioPermissao);
        }

        public void Excluir(Cbo cbo, Usuario usuarioPermissao)
        {
            Fachada.GetInstancia().Excluir(cbo, usuarioPermissao);
        }

        public Cbo ObterCboPorId(Usuario usuarioPermissao, int id)
        {
            return Fachada.GetInstancia().ObterCboPorId(usuarioPermissao, id);
        }

        public IList<Cbo> ObterCboPorCodigo(Usuario usuarioPermissao, string codigo)
        {
            return Fachada.GetInstancia().ObterCboPorCodigo(usuarioPermissao, codigo);
        }

        public IList<Cbo> ObterCboPorDescricao(int inicio, int quantidade, int quantidadeMinima, Usuario usuarioPermissao, string descricao)
        {

            return Fachada.GetInstancia().ObterCboPorDescricao(inicio, quantidade, quantidadeMinima, usuarioPermissao, descricao);
        }

        public IList<Cbo> ObterTodosCbos(Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().ObterTodosCbos(usuarioPermissao);
        }

        public IList<Cbo> ObterTodosCbos(int inicio, int quantidade, int quantidadeMinima, Usuario usuarioPermissao,
          string codigo, int enumTipoCbo, string descricao, Cbo cboAnterior, DateTime? inicioVigenciaDe, DateTime? inicioVigenciaAte, DateTime? fimVigenciaDe,
          DateTime? fimVigenciaAte)
        {
            return Fachada.GetInstancia().ObterTodosCbos(inicio, quantidade, quantidadeMinima, usuarioPermissao, codigo,
                (EnumTipoCbo)enumTipoCbo, descricao, cboAnterior, inicioVigenciaDe, inicioVigenciaAte, fimVigenciaDe, 
                fimVigenciaAte);

        }
    }
}